package com.mingdao.lhy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.ComponentScan;

/**
 * Created by gcc on 2018/2/27.
 * 
 * springBoot会扫描此运行文件以及子目录的注解
 * 
 * @RestController 注解相当于@ResponseBody ＋ @Controller合在一起的作用。
 *                 如果只是使用@RestController注解Controller，则Controller中的方法无法返回jsp页面，配置的视图解析器不起作用，返回的内容就是Return
 *                 里的内容。
 * 
 * @EnableAutoConfiguration ，这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。
 *                          由于pom内配置的是
 *                          spring-boot-starter-web，带有Tomcat和SpringMVC，所以注解将假定你正在开发一个web应用，并对Spring进行相应地设置。
 * 
 */
// @RestController
@EnableAutoConfiguration
@SpringBootApplication(scanBasePackages = "com.mingdao.lhy.mapper")
// (exclude = { DataSourceAutoConfiguration.class,
// DataSourceTransactionManagerAutoConfiguration.class })
// 开启通用注解扫描
@ComponentScan
//@MapperScan("com.scx.mapper")
//@EnableCaching
public class LslhyApplication extends SpringBootServletInitializer {

	// @RequestMapping("/")
	// public String home() {
	// return "welcome !";
	// }

	/**
	 * 实现SpringBootServletInitializer可以让spring-boot项目在web容器中运行
	 */
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		builder.sources(this.getClass());
		return super.configure(builder);
	}

	/**
	 * main方法通过调用run ，将业务委托给了Spring Boot的SpringApplication类。
	 * SpringApplication将引导我们的应用，启动Spring，相应地也会启动自动配置的Tomcat服务器。 我们需要将 Example.class
	 * 作为参数传递给run方法，以此告诉SpringApplication谁是主要的Spring组件，并传递args数组以暴露所有的命令行参数。
	 */
	public static void main(String[] args) {
		SpringApplication.run(LslhyApplication.class, args);
	}

}
